This invention relates to portable security tokens, such as, e.g., smart cards, and more particularly to automated methods and arrangements for use in developing, designing, configuring, programming, and/or manufacturing portable security tokens.
Smart cards represent one type of portable security tokens that are becoming more and more popular. Conventional smart cards are basically small portable programmable devices having operatively coupled logic and memory circuitry. Smart cards can be, for example, configured to provide certain identification and/or cryptography capabilities that support secure operation of or access to other devices, services, etc.
Electrical interface contacts are exposed on a surface of conventional smart cards and operatively configured to allow other devices, such as, a smart card reader, to interact with the programmed features and/or contents of the smart card. The smart card reader may be further operatively coupled to a computer or other device that is programmed to interact with the smart card in some manner. The smart card reader may be part of a separate peripheral device or may be integrated into a device. By way of example, a mobile telephone may include an integral smart card interface. Further, the smart card may be fixed in place or removable.
Most smart cards are manufactured based on specified programmed logic (e.g., a compiled image). Typically, a designer seeking to include a smart card in a product such as a mobile telephone would need to investigate and understand the capabilities and features that are provided by various versions of smart cards available on the market today. Once a xe2x80x9csuitablexe2x80x9d smart card has been selected, the designer would need to learn how to effectively program the smart card to meet the product""s required operation and make proper use of the smart card""s capabilities.
Usually, the smart card design will be created on a personal computer (PC) or other like computer using software that is typically provided by the smart card manufacturer. The result is a compiled image. Experimental smart cards can then be made using the compiled image using a smart card writer that xe2x80x9cflashesxe2x80x9d the compiled image into the memory on the smart card. Once a final compiled image has been created and the resulting smart card performs satisfactory, then the final compiled image would most likely be provided to the smart card manufacturer for use in mass production of similar smart cards.
Developing smart cards in this manner can be difficult since the developers are often required to deal with low level details, e.g., which ROM masks to use for the solution being developed, laying out the file system for the smart card, setting security policies for the smart card, building a dispatch table that routes commands sent to the card to the appropriate applications, choosing events that the smart card is to synchronize with, etc.
Because many of these decisions and others are usually required to interact with one another, the smart card development process can be cumbersome, error prone and time consuming. Moreover, changes to the design are usually very difficult and time-consuming to make and thus innovation and experimentation often suffers.
Additionally, once a designer has invested time and effort into learning and understanding a particular manufacturer""s smart card, they may be less inclined to become familiar with another manufacturer""s smart card. This may not always lead to the selection of the xe2x80x9cbestxe2x80x9d smart card for a particular application.
Consequently, there is a need for improved methods and arrangements that intelligently reduce the learning curve associated with the development of smart cards and other like portable security tokens, speed up the associated development cycle, and/or lead to improved product performance.
Improved methods and arrangements are provided that tend to significantly reduce the difficulty often associated with developing portable security tokens, speed up the associated development cycle, and lead to improved product performance.
Thus, for example, in accordance with certain aspects of the present invention a tool is provided for use with a computer system. The tool may be software and/or hardware based. The tool includes at least one database that contains operational design-related information about at least two different portable security tokens. Hence, the designer need not know or otherwise learn several different manufacturers"" portable security token capabilities. The tool also includes logic that is configured to interactively and selectively present at least a portion of the operational information via a graphical user interface (GUI) of the computer system. The logic also accepts user inputs via at least one computer system user mechanism and determines certain design requirements for the portable security token based at least on the portion of the operational information and the user inputs. The logic further generates at least one output file based on the design requirements. The output file is suitable for operatively programming at least one of the portable security tokens. Thus, for example, the output file may include an editable build script file ready for compilation or an already compiled binary image, for example.
The above stated needs and others are also met by a method that includes providing at least one database containing operational design-related information associated with at least two different portable security tokens, interactively and selectively presenting at least a portion of the operational information via a graphical user interface (GUI), accepting user inputs associated with the portion of the operational information presented via the GUI, determining design requirements based at least on the portion of the operational information and the user inputs, and generating at least one output file based on the design requirements, wherein the output file is suitable for operatively programming at least one of the portable security tokens.